const express = require('express');
const bodyParser = require('body-parser');
const routes = require('./src/routes/routes');
const cors = require('cors');
const morgan = require('morgan');
const path = require('path');
const os = require('os');  // 引入 os 模块
const { initializeTypeAiModelMapping } = require("./src/models/redisModel");
const {connectDB} = require("./src/utils/db");
const {authenticateUser} = require("./src/utils/authenticateUser");


const app = express();

// 使用 CORS 中间件
app.use(cors());

connectDB()
app.use(bodyParser.json());

// 使用 morgan 记录 HTTP 请求
app.use(morgan('combined'));




// 默认加载 index.html
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, './src/views', 'index.html')); // 发送 index.html 文件
});

// 默认加载 index.html
app.get('/data', (req, res) => {
    res.sendFile(path.join(__dirname, './src/views', 'data.html')); // 发送 index.html 文件
});



// 使用中间件
app.use(authenticateUser);

// 添加你的路由
app.use('/api', routes);

app.use(express.json());




// 初始化表类型与 AI 模型的对应关系
initializeTypeAiModelMapping()
    .then(() => {
        console.log('AI 模型初始化完成');
    }).catch(err => {
    console.error('AI 模型初始化失败', err);
});




const PORT = 3000;
app.listen(PORT, () => {
    console.log(`Server is running on http://127.0.0.1:${PORT}`);
});

